#ifndef CONTROLLER_H
#define CONTROLLER_H
/*!
 * \file controller.h
 * \brief
 * \version 1.0
 */
#include <QObject>
#include <QTime>
#include <QTimer>
#include <mainwindow.h>
#include <cammanager.h>
#include <record.h>
#include <video.h>
#include <inquiry.h>
/**
 * \brief Creation d'objets et lien IHM/Moteur
 * \version 1.0
 * Partie controle de l'application qui gere l'IHM d'une part et le moteur d'autre part selon une structure type MVC
 */
class Controller : public QObject
{
    Q_OBJECT
private:
    // Elements d'ihm
    MainWindow *mainWin;
    TimerTest *timer;
    Config *config;
    // Elements moteur
    CamManager *cam;
    Record *record;
    Video *videoDisplay;
    Inquiry *inquiry;

    QSize imageSize;
    bool displayedVideo;

    QTime lenghtTest;

    QString nameTest;

public:
    /**
      * \fn Controller()
      * \brief Constructeur
      * Constructeur de la classe Controller
      */
    Controller();
    /**
      * \fn ~Controller()
      * \brief Destructer
      * Destructer de la classe Controller
      */
    ~Controller();

signals:
    void close();
    void showVideo();

private slots:
    void stopTest();
    void launchTest();
    void displayVideo();
};

#endif // CONTROLLER_H
